Saving information related to a concluding electronic conversation

ABSTRACT

An electronic conversation is initiated between a first user and a second user preferably by broadcasting a message via a pub/sub service to a plurality of users subscribing to the service wherein said second user responds to the broadcasted message wherein said electronic conversation session is uniquely identified. One or more electronic conversation messages are exchanged between the first user and the second user during said uniquely identified electronic conversation session. Information about said uniquely identified electronic conversation session is recorded at the conclusion of the session to be used in subsequent sessions.

CROSS-REFERENCE TO RELATED APPLICATION

This is a divisional of U.S. patent application Ser. No. 10/207,685“INTERACTIVE ONE TO MANY COMMUNICATION IN A COOPERATING COMMUNITY OFUSERS” filed Jul. 26, 2002 and assigned to IBM. The disclosure of theforgoing application is incorporated herein by reference.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the Patent andTrademark Office patent file or records, but otherwise reserves allcopyright rights whatsoever.

FIELD OF THE INVENTION

The present invention is related to systems and methods for distributingdata, more particularly to systems and methods for distributed computerusers to enter into a two way electronic conversations usingPublication/Subscription services.

BACKGROUND OF THE INVENTION

There are several ways that a requester can solicit help from a group oflisteners today. He could use e-mail to send a request to apredetermined group of listeners who could each make a decision whetherto engage in e-mail conversation with the requester. The problem is thate-mail's persist and have an indeterminate turn around, thus a listenermay happen to see the requesters e-mail “immediately” but anotherlistener may see the e-mail hours (or months) later. Conversing bye-mail would be very frustrating. The requester may enter a chat room tomake his request, the problem is that all the members of the chat roomare peers so it would be difficult to assure that listeners wereinterested enough to engage in conversation on a requesters subject andeven if they were, the chat room would be cluttered with many usersmessages pertaining to many subjects all interspersed. The requestercould open an instant message (IM) session with one listener at a timebut he'd have to know which listener to direct the request to and wait aperiod for response to the listener to decide that the listener wasn'tresponding. Prior art methods often require the requester know the ID ofthe members of the community, know their interest and skills, shareconversation with other requesters, take a long time to negotiate tofind the appropriate listener, allow only one to one communication andthe like.

FIG. 1 depicts the elements that make up a typical computer for use innetworked applications. The computer 100 consists of a Base Computer 101which comprises a processor 106, storage media such as a magnetic disk107 and a high speed volatile main memory 105. An operating system andapplication programs 111 reside on the storage media 107 and are pagedinto main memory 105 as needed for computations performed by theprocessor 106. The Base computer may include optional peripheral devicesincluding a video display 102, a printer or scanner 110, a keyboard 104,a pointing device (mouse) 103 and a connection 108 to a network 109. Ina client environment, a user will interact with a (Graphical UserInterface) GUI by use of a keyboard 104 and mouse 103 in conjunctionwith the display of information on the display 102 under control of anapplication program (application 1) 112. The client application program112 will then interact with remote users by way of the network 109.

In FIG. 2 an example Internet system is shown. A user at client 1 201uses applications on his system. This user (user 1 210) at client 1 201can interact with clients 2-4 202-204 by way of a client server computer206. Applications 112 may be provided by each client 201-205 and or theclient server 206 or some remote server 208 by way of the network 207.The user at client 1 201 can interact with a remote user (user 5 211) atclient 5 205 by way of the Internet 207.

Networked clients comprise applications for communication. E-mailapplications provide for sending a message to a mail server that thenmakes the recipient aware of the waiting message. The recipient then canelect to open the message and view it at his client machine. E-mailmessages can be sent to a single recipient or can contain a list ofseveral recipients (one to many). One to many e-mail transactions arepopular with advertisers and the use of one to many e-mails has beendubbed “SPAM-ing”. Recently Instant Messaging (IM) has gained popularityin the form of sending text messages directly to another client. A firstuser composes an IM and selects a second user as the target. A messageis then sent directly to the second user and appears on his display aseither a message or the notification of a message. IMs are typically oneto one messages.

A pub/sub service 304 receives messages originating from a contentservice and delivers them to client subscribers. An example messagepublished includes a topic string, a set of property name-value pairs,and a body. A subscriber identifies a topic string pattern andproperties test, and receives matching messages according to a standard,for instance JAVA Message Service (JMS).

SUMMARY OF THE INVENTION

An IBM marketing representative is typing away at his THINKPAD in anAtlanta, Ga. hotel room. A software developer at the Santa Teresa,California Lab looks up at the clock—10 PM, only twelve hours away fromproduct code freeze. A secretary in Somers, N.Y. is scrambling todecipher an obscure LOTUS Notes error message she received whileaccessing an executive's calendar.

what do these three employees have in common? They each open theirSametime Connect Instant Messaging “buddy lists” and click on the“SkillTap” Bot. A Bot is an automated assistant (robot). Bot activeagents are discussed in U.S. patent application Ser. No. 10/002,685“Accessing Information Using An Instant Messaging System” assigned toIBM and incorporated herein by reference. The SkillTap Bot can instantlydeliver requests for help concurrently to an entire community of onlineemployees. Immediately, coworkers who have elected to see SkillTapInstant Messages containing keywords of interest to them are presentedan alert box with the message—they can quickly choose to respond ifappropriate, or discard the alert if they are unable to deal with therequest for any reason (no question asked . . . entirely anonymous sofar and on a volunteer basis only).

An employee casually reading mail at home in Seattle, Wash. sees analert pop-up on his screen from the marketing rep—“Customer in Atlantarequires immediate assistance with enabling SSL LDAP authenticationunder IHS/Websphere on Netfinity 4000/Linux”. The words “Websphere”,“Linux”, and “Atlanta” are highlighted in red, based on filtering rulesthe Seattle employee had defined. He clicks a button to initiate aSametime Instant Message discussion with the customer rep. “Been there,done that”, “family in Atlanta area”, “help at the customer site Friday,stay the weekend with family, fly you back Monday”—solutions convergequickly. The marketing rep gets a good nights sleep. The responder getsa change of scenery, some customer experience, and moves up a notch onthe “Top Guns” SkillTap Scoreboard. Life is good.

So, how does this thing work, you ask? From the “requester” side, youneed nothing installed beyond the Sametime Connect Instant Messageclient, which most employees are already using for daily instantmessaging communication with other employees. Using the “People” menu,select “Add . . . ” and type in Sametime User name “skilltap@us.ibm.com”to add the SkillTap Bot to your buddy list. When you have an importantproblem that requires immediate assistance, simply click on the Bot andask him your question. Be sure to include enough details in the messagethat only users filtering on the important keywords will receive themessage (e.g. Java, Websphere, AIX, SP2, zSeries, LDAP, DB2, Domino, MQ,etc.). Also, be aware that this message is potentially being deliveredto a large number of users, so remember to follow basic rules ofetiquette. Finally, when you are really stuck, keep in mind that noquestion is too simple—just think of the SkillTap community as a largeroom of coworkers who have all indicated a willingness to help—so, goahead, just ask!

To be able to see questions posted by other employees, and to activelyparticipate as a “responder”, you must first download programapplications to your PC. The applications are the Sash weblicationcalled “Shotgun” and the “SkillTap” weblication, from the Web site.Next, refer to the Shotgun documentation to understand how the SkillTapapplication is enabled under the Shotgun client, and how to define“filters” to control which SkillTap instant messages you will receive.Once you have defined the filter words and expressions that are ofinterest to you (e.g. Java, Perl, Linux, AIX, zSeries, DB2, MQ, LotusNotes, Power, wireless,etc.), just sit back and wait for coworkers toask for your help.

Web Pub/Sub services provide for a single publisher to publish messagesto large numbers of clients. The present invention (herein called“SkillTap”) utilizes Pub/Sub Applications to publish an Instant Message(IM) from a requester to subscribers of a Pub/Sub channel (listeners).The listeners, running a special SkillTap application, each receive themessage as an IM. In one embodiment, the published message is displayedin a special SkillTap alert window. If a listener decides to engage inconversation with the requester, he responds to the IM. The requesterreceives IM's from each responder in separate windows and elects oneresponder to converse with at a time. When the conversation is over, therequester is optionally prompted for Frequently Asked Question (FAQ)database information and/or and evaluation of the session with thelistener of the conversation. Message filters are employed to allowlisteners to only be alerted to messages that contain content ofinterest. Message throttles are employed to limit number of listenersengaging the requester.

It is therefore an object of the invention to create and saveinformation at the conclusion of an electronic conversation sessioncomprising the steps of: initiating an electronic conversation between afirst user and a second user wherein the electronic conversation sessionis uniquely identified; completing the electronic conversation; creatinginformation about the conversation; recording the information; andending the electronic conversation session.

It is another object of the invention to record information about aconcluding electronic conversation wherein the information comprises anyone of a FAQ entry, billing information, customer information orevaluation information about the user or the conversation. Optionallythe information is presented when initiating new conversations. Thus,the evaluation information contributes to a record that summarizes theuser's expertise or rates the quality of his accumulated conversationsand the record is used in creating an accumulated evaluation which ispresented whenever the user engages in a new conversation.

In another embodiment, value recognition is created in a system forinstant messages using a pub/sub server comprising the steps of:Initiating a message exchange with subscribers by way of a pub/subserver; Receiving a response message from a first subscriber; creating avalue rating for the first subscriber, the value rating indicating thevalue of the exchange of messages from the first subscriber.

In a version of the embodiment, the value rating is an aggregate ofvalue rating accumulated from value ratings directed to the firstsubscriber.

In another version, the embodiment comprises the further step ofpresenting the value rating with responses from the subscriber.

It is therefore an object of the present invention to provide a methodfor responding to a message published via a pub/sub service.

It is another object of the invention to incorporate elements of apublished message in the response to a message published via a pub/subservice.

It is another object of the invention to incorporate information about auser in the response to a message published via a pub/sub service to theuser.

The above as well as additional objectives, features, and advantages ofthe present invention will become apparent in the following writtendescription.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram depicting a prior art computer;

FIG. 2 is a diagram of user computers interconnected in an Internetnetwork;

FIG. 3 is a logical depiction of a Pub/Sub implementation;

FIG. 4 is a logical depiction of a messaging system of the presentinvention;

FIG. 5 is a GUI view of an IM window employing the invention;

FIG. 6 is a requester's IM window for broadcasting;

FIG. 7 is a requester's IM window with a listener's response;

FIG. 8 is a listener's IM filter creation window;

FIG. 9 is a listener's alert window highlighted according to his filter.

FIG. 10 is a listener's window comprising the initial request;

FIG. 11 is a listener's IM window comprising the listener's responsetext;

FIG. 12 is the requester's IM window opened by the listener's firstresponse;

FIG. 13 is the requester's IM window including a reply to the listener'smessage;

FIG. 14 is the IM window comprising the session communication;

FIG. 15 is an optional requester window opened at conclusion of asession;

FIG. 16 is a requester window for creating a FAQ;

FIG. 17 is an automated message requesting a value rating from therequester;

FIG. 18 is a flowchart of the events of an embodiment of the invention;

FIG. 19 is a flowchart depicting function of the invention;

FIG. 20 is a flowchart expanding a setup scenario;

FIG. 21 is a flowchart expanding initiating a message to skilltap;

FIG. 22 is a flowchart expanding receiving an initiating message;

FIG. 23 is a flowchart expanding displaying an initiating message;

FIG. 24 is a flowchart expanding responding to an initiating message;

FIG. 25 is a flowchart expanding receiving response message; and

FIG. 26 is a flowchart expanding post correspondence options.

DESCRIPTION OF THE PREFERRED EMBODIMENT

The present invention provides a method for one to many communicationpreferably by way of Instant Messaging technology. It utilizes a novelcombination of Pub/Sub service which publishes a service to subscriberswherein the subscribers elect a service channel and message filtering inorder to customize the type of information presented to the subscriber.The novel combination is described in U.S. patent application DocketNumber POU920020088US1 “INTERACTIVE FILTERING ELECTRONIC MESSAGESRECEIVED FROM A PUBLICATION/SUBSCRIPTION SERVICE” assigned to IBM andincorporated herein by reference.

Refer to FIG. 3. The pub/sub system is made up of a Content Providerapplication (Service) 301-303, the Subscriber (Client) 305-306, and thePub-Sub Service 304. Applications may implement one or more of theseroles. The content provider 301-303 generates content for distributionthrough the pub/sub system 300. Content providers 301-303 sendstructured content to one or more instances of the pub/sub service 304.The subscriber 305-306 sends subscription requests 307 to an instance ofthe pub/sub service 304 and, subject to acceptance of a particularsubscription request, receives content 308 from the pub/sub service. Theactual content received will be determined by the subscription and themessage selection process.

The pub/sub service 304 acts as both a subscription manager 310 and acontent distribution agent 311. Applications implementing the pub/subservice role 304 accept subscription requests 307 from subscribers 305and, subject to any applicable authentication or access controlpolicies, accept or reject subscription requests; and distribute content308 to valid subscribers 305.

The actual content sent to each subscriber 305-306 by the pub-subservice 304 will be determined by the subscription process 310 andthrough the message selection process 311.

Applications implementing some aspect of the pub/sub system may act indifferent roles in different circumstances. For example, an applicationimplementing the pub/sub service role 304 may itself act as asubscriber, subscribing to and receiving content from another instanceof the pub-sub service. Similarly, an application acting in thesubscriber role may act as a content producer if the end-user of theapplication wishes to publish a message to the service.

The pub/sub system provides for communication among applicationsimplementing the application roles. There are two primary communicationsin the pub/sub system: messages are sent from content providers topub/sub services; and pub/sub services send messages to subscribers 308,312. [00301 Content providers 301-303 may generate messages from anycontent source, and subscribers may dispose of messages in any mannerthey choose. For example, a content provider may simply be a gatewaybetween a raw content source, such as e-mail or web pages, to thepub-sub service. Similarly, a subscriber 305, 306 may act as a gatewaybetween the pub-sub service and an external service such as NNTP ore-mail.

FIG. 4 depicts a logical representation of components of the presentinvention. The system enables a client to send an IM to an automatedclient (Bot). Bots used to present an interface to program applicationsare described in U.S. patent application Ser. No. 10/002,685 “AccessingInformation Using An Instant Messaging System” assigned to IBM andincorporated herein by reference. The client Bot re-sends the message tomany listeners. The listeners each receive a special IM window. When alistener responds to the requester using his special window for thetransaction, a new special IM window is presented to the requester. Thiscompletes the one to one IM connection between the requester and one ofthe listeners. The requester elects to commence conversation with aresponding listener by using the IM window assigned to that listener'sresponse. Other embodiments enable window sharing for multiple listenersresponding to the same request or prompt the requester in a single GUIdisplaying listeners responding to a request in order that the requestercan elect to open windows associated with the responding listeners.

More specifically, Clients 305-306 have downloaded App 1 (321) and App 2(323) which enable message filtering 420 for message published 311 by aPub/Sub service 304. One component of Service A (301) includes anautomated IM user (Bot) 402 which communicates to other applications403-404 using IM technology. Service A (301) associates the Bot with aPub/Sub channel. The Bot is represented to the community by an IM ID asif it were another user. Clients can be requesters or listeners or both.Requesters initiate requests to Service A's Bot exactly as in any Iminitial event. Service A's Bot ID is associated with a Pub/Sub channelwhich has a plurality of subscriber clients (listeners). Listeners havesubscribed to the Bot channel because they have common interests. Thesubscribers' IM ID's are preferably unknown to the requester. SkillTapassociates subscribers with a channel by use of a table holding theinformation at the SkillTap server.

Service A's Bot (402) receives an IM from a requester's 305 Im session403 and publishes it 311 to the active subscribers of the Pub/Subchannel associated with the Bot including client 2 (306). Therequester's 305 IM window may then be closed. The Pub/Sub service 304distributes messages to SkillTap applications running on clientmachines. One of these applications, App 2 provides filtering techniqueson incoming messages to eliminate messages that are not of interest tothe client 2. App 2 (323) presents the request message to the listeneruser's display at client 2 (306). In one embodiment, the display atclient 2 is like an IM display. If the listener is interested inresponding, he transmits a response special IM by typing text in thedisplayed window. App 2 (323) uses IM 404 to transmit the message to therequester at client 1 (305). App 1 at client 1 (305) intercepts theresponse message and opens up a special IM window on the requester'sdisplay. This completes the negotiation from the requester for an IMsession with a group of listeners. Communication between the two specialIM windows continues until one window is closed.

It should be noted that in the preferred embodiment, the SkillTap clientprovides a “special IM” GUI that is used to provide the special SkillTapfeatures. In the preferred embodiment, the initial request uses astandard IM GUI which is closed after transmitting the request. Therequester receives responses from listeners in standard IM GUI. Thus arequester needs any IM service to initiate a SkillTap request and aspecial SkillTap IM application for the listening function. Anotherembodiment would provide all IM services in the special SkillTap IMapplication. These and other embodiments of the present invention couldbe created by one skilled in the art after learning the exampleembodiments herein.

Example of a Preferred Embodiment

In the example that follows, Brian has installed an IM (instantmessaging) application on his PC. He adds a user name“SkillTap@us.ibm.com” to his IM buddy list. In this case, SkillTap isnot the name of a person, it is the name of an automated user robot(Bot) that receives and sends IMs as if it were any other user. The Botalso communicates with a Pub/Sub service as a content provider. Briansends a request to “listeners” for information. Brian doesn't know whois listening specifically but he does know that they subscribe to theSkillTap Service. Mike, a “listener” has downloaded an applicationcalled Shotgun. Shotgun in this case is an IBM SASH Weblication from anIBM Web site. Mike has also downloaded the SkillTap weblication. TheSkillTap application is enabled under the Shotgun client. Mike usesShotgun Documentation to understand how the SkillTap application works.Mike has defined Shotgun Filters for his SkillTap channel to limitmessages to topics of his interest and expertise the Filters base theirdecision to present messages directed to SkillTap to listeners based onthe content of the messages.

Shotgun receives IMs directed to predetermined services (SkillTap Bot inthis case) and enables the service to publish messages via channels tosubscribers (listeners in this case). Listeners may respond by returningan IM to the requester (Brian). The return messages opens an IM windowon Brian's computer which initiates the IM conversation between Brianand Mike. In another embodiment, the return message opens a chat roomand Brian selectively engages in IM conversations with multiplelisteners via the chat room. The chat room enables multiple listeners toparticipate in the conversation, it allows multiple listeners to viewthe conversation between Brian and Mike or optionally only providesBrian with a single instance of an IM window to converse with multiplelisteners wherein each listener only sees conversation directed to him.Many other window variations would be useful and become obvious in lightof the present invention.

An embodiment is demonstrated in the following example. In FIG. 5 ,Brian, a marketing rep clicks on the “SkillTap” Bot 504 in his InstantMessaging (IM) Sometime window 501.

In the resulting IM window shown in FIG. 6, Brian defines a problem 602and sends 603 a request to the SkillTap Bot 601 for publication to agroup of users currently running the Shotgun client. The SkillTapservice application publishes (via a Pub/Sub service) Brian's message toa predefined group of active clients.

In FIG. 7, the SkillTap service responds to Brian's request with anacknowledgment 704 that the request message 703 has been successfullydelivered to the community of active listeners. SkillTap imitates aknowledgeable client in one embodiment by returning messages from a FAQdatabase using artificial intelligence querying known in the art. Inanother preferred embodiment, SkillTap returns procedural information orprompts such as instructions to close the present window.

In FIG. 8, an example filter window 801 is shown. Shotgun userssubscribing to the SkillTap service are permitted to define messagecontent filters. The example filter 802 of FIG. 8 shows a boolean listof keywords or'd together. The boolean “OR” is depicted by “|”. Thefilter defines the user's areas of interest or expertise. In theexample, the user has entered “Atlanta” because he is interested inwhat's happening in his hometown of Atlanta. When Brian sent hisrequest, the words in his request would have to pass the listener'sfilter in order for the listener to see the request.

In FIG. 9, if the request passes the filter test, a Shotgun notification901 immediately appears on the listener's screen. In the example, thefilter keywords 903 “Atlanta”, “Websphere” and “Linux” are highlightedin the message. The window in the preferred embodiment also identifiesthe SkillTap service 902 as the Channel and supplies radio buttons foractions to be taken. In the example, the listener is asked if he wantsto “Handle” this request. If he hits the No radio button, the operationis aborted.

If the listener wants to proceed, he hits “Yes” and the window depictedin FIG. 10 is displayed. This window 1000 is similar to any IM window.In the preferred embodiment the window shows additional informationabout the requester 1002, in this case Brian's name, occupation, phonenumber and a hyperlink for more information about Brian. The informationhaving been retrieved from data bases or subscription information. Thelistener is presented with the request message in the top field and in asecond field is provided a place to type his response. His responseincludes text only or in another embodiment, the listener provides alink to image, audio or video information or any other media known inthe art. Once the listener has typed his response he hits the “Send” UI(User Interface) button.

FIG. 11 shows the listener's window after he has entered his response1101.

FIG. 12 shows Brian's window after receiving one response. Note that ina preferred embodiment, Brian is reminded by SkillTap of his originalrequest and that the IM transactions relate to that request. If Brianwanted to begin a new request, a new set of windows would be created andeach one would remind Brian of the topic of his request. Part of theSkillTap service function is to provide an indication of the value ofthe responding listener's credentials. In the embodiment shown, theSkillTap application has asked past requesters to rate respondinglistener's on a 1-5 basis. The responder “Mike Van Der Meulen” in theexample currently has an accumulated rating value of 4.3. The responsesfrom Listeners open normal IM windows at the requesters' terminal, inthis case IBM Sametime IM. In one embodiment, Brian elects to have oneIM window displaying conversations related to his first request frommultiple listeners. In a preferred embodiment, the SkillTap applicationallows Brian to use his mouse to drag a conversation window into anotherconversation window. The resulting new combination window displaysmessages from both listeners in a single window. Similarly, Brian useshis mouse to drag a user's message out of the window which creates a newconversation window for that conversation and optionally eliminates thedragged user from the original window.

In FIG. 13, Brian continues the communication by entering his IM textdirected to Mike. In another embodiment, continued negotiations via IMsare broadcast to all listeners.

FIG. 14 shows Brian's IM window after all negotiations with Mike havebeen completed. Brian closes this window to end communications.

FIG. 15 depicts a preferred embodiment of a method for the SkillTapservice to assess the value of the responder's participation. In theexample, a window appears when the conversation is closed. The windowpermits the requester to select from a list of predetermined categories.In the example, Brian selects “Assistance was provided*”. He also checksthe “Add to FAQ” function.

In the next window of the example, FIG. 16 shows an embodiment of a FAQcreation window. In this embodiment, Brian is presented two fields, onecontaining text from Brian and the other containing text from Mike.Brian edits these windows (or in another embodiment, types into newwindows) to create a brief paraphrase of the question and a briefparaphrase of the answer. In one embodiment of the present invention,Brian's value rating is increased by creating the FAQ. This is anincentive for Brian since his value rating will be seen when he is aresponder listener to a request from another user.

FIG. 17, shows SkillTap (an agent program Bot) asking Brian to rateMike's response and explains the criteria. Mike's rating is provided tothe SkillTap service and will be provided with Mike's response to futurelistening. In one embodiment, the value rating of listeners is used toprioritize responses from listeners.

In one embodiment, users can see their relative value rating by askingSkillTap for their standing. Mike, for instance could see that he iscurrently the 10th rated listener overall.

In another embodiment of the present invention, a SkillTap applicationoptionally receives messages or publishes messages other than IMs.Messages can be transmitted/received using any media including forexample: telephone, wireless, personal devices, voice to text, text tovoice or automated applications. Messages can include attachments ofimage, audio, video, program applications, network invoking mechanisms(including hyperlinks, Web URLs) and the like.

In one embodiment, SkillTap comprises a throttling means to limit thenumber of messages. Responses to the requester are limited by any of apredetermined number of messages, a predetermined time window, apredetermined algorithm of priority (based on message content) ormessage sender's credentials and the like.

In another embodiment, SkillTap prioritizes publication of the requestsuch that an initial publication goes to one set of listeners, a secondpublication goes to another set of listeners. The decision to publish tosets of listeners is either time based, response based, or explicitlyrequested by the requester.

In a preferred embodiment, SkillTap first sends the request to an activeagent that queries a database for responses. The database is preferablya FAQ database but in another implementation, may be a query on cachedresponses accumulated from other SkillTap sessions.

In a preferred implementation, SkillTap requests include keywords todirect SkillTap action. A question to listeners uses “Ask”; a questionto FAQ uses “FAQ”, an IM to SkillTap to set parameters or controls uses“PARM”. In another implementation, SkillTap interacts with therequester. For example, the requester submits a question using “Ask” andSkillTap responds with a list of groups for the request to be directedto such as “All”, “US”, “Japan”, “Hardware”, “Programmer”, “Marketing”,“FAQ”. The requester responds with his selection and SkillTap thenbroadcasts the request to the selected group of listeners.

FIG. 18 depicts a flowchart of the SkillTap events. The requestersmessage is broadcast 1801 (published) to SkillTap client applications1802 (listeners) that have subscribed to SkillTap. The SkillTap clientapplication looks at the message and decides whether to present it tothe user (listener). If the user decides to participate 1803, he sends aresponse message. The SkillTap throttle controller 1804 checks todetermine if the throttle threshold has been met using parameters in thedatabase 1817. If there aren't too many responders, interaction isenabled 1808 between the requester and responder(s). When the requesterfinishes his interaction 1809, he is prompted for feedback 1810 aboutthe value of the responder. If the requester elects 1811 to create a FAQentry, he does so using the FAQ editor 1812. When the FAQ is complete,it is submitted 1807 to the database 1815.

FIG. 19 depicts the major events of setting up a skilltap channel,broadcasting a communication request via a pub/sub engine, engaging incommunication with a subscriber to the skilltap channel and closing acommunication session.

A User “A” wishes to participate in skilltap group communication. Hedownloads to his client a local skilltap application 1901. He alsodownloads a shotgun application (may be part of the download ofskilltap). Shotgun provides the GUI for subscribing to a channel ofskilltap and for setting up message options such as filters, throttlesand the like for skilltap messages. The Shotgun server maintains a listof subscribers for each channel. When a new subscriber joins thechannel, he is authenticated and authorized and his network address isadded to the list of approved subscriber for the channel (the channel'scommunity of users). A user can use the GUI at any time to join or leavea Channel or alter his options. The user uses the GUI to getauthorization to subscribe and/or publish for each channel. He isauthenticated and approved based on credentials required by the specificimplementation.

In FIG. 20, User “A” interacts 1901 2001 with a web based subscriptionservice (or alternatively, after downloading Skilltap, opens theSkilltap GUI and uses it) to subscribe 2001 to the remote skilltapservice 2005. The remote service in one embodiment saves informationabout User “A” during the subscription process. Such information as theuser's network address/ID, contact information (telephone number, email. . . ), nickname, password, and preferences. Preferences include suchthings as: whether the user wants to be anonymous in transactions withother users in a skilltap session. Anonymity is maintained by skilltapby acting as a forwarding address for communication where skilltapsupplies a temporary address/ID for others to use in communication withuser “A”; Alternate ID's, where User “A” wishes to provide more than onenetwork address/ID, and Distribution lists for SkillTap to forwardmessages to others to allow others to participate in the communicationsession or alternatively, for SkillTap to provide temporary subscriptionto a group so that the user can provide an adjunct list of groupmembers. The user downloads a local skilltap application 2002 to hisclient if he hasn't already.

The local skilltap application is personalized 2003 with information2006 useful for communications sessions. Information includesidentifying information such as User “A” Name, nickname, phonenumber(s), Fax number(s), Job Title, Expertise and the like. LocalSkilltap also records the user's preferences for SkillTap such as if hewants anonymity or warning if he is about to break anonymity, his aliasname, whether he wants to invoke a FAQ active agent robot as one of therecipients of his messages, default global filters for incomingmessages, optional filters which can be invoked by a skilltap GUI may benicknamed so the user associate their function easily. The Skilltap GUIsettings identify whether the user wants to be alerted to incomingmessages, whether he wants prompts and whether he wants a help function.The user then closes his setup GUI window 2004 and he is ready to go. Inthe preferred embodiment, anyone who wants to participate in SkillTapmust download skilltap and perform the setup for their client. Inanother embodiment, Skilltap at the remote server, performs subscriptionand publishes IMs to subscribers who use standard IM applications torespond. The response IM is sent to the skilltap service as if it werethe requester. The requester opens and closes an IM session withSkillTap as in other embodiments but in this embodiment, SkillTapservice opens a second standard IM session to subscribers who respond inthe second IM session. SkillTap then opens a third standard IM sessionwith the initiator as a surrogate for the responder. The Skilltapservice forwards the IM to the requester on behalf of the user. Thus, nolocal copy of skilltap is required.

When User “A” wishes to initiate a conversation FIG. 21 with subscribers1902 (send a request message: “Ask . . . ”), he does so by sending astandard IM message 2105 to a Bot “SkillTap@xxx.com”. The IM message issent to an active agent in the SkillTap service via IM 2104. In anotherembodiment, the user can elect 2103 to have SkillTap provide a specialGUI for IMs 2103. The special GUI provides IM services and SkillTapoptions. The options include Help, invoking a temporary chat room,prompting the initiator for such things as Topic of conversation,Filters and Throttles for response messages, Keyword prompts for specialfunctions (Ask . . . ) also media options such as invoking a translatorto allow IMs to translate to/from phones, Voice <-> Text; email,mechanical controls for automation of machines and any media availableto one skilled in the art.

Referring to FIG. 22, the SkillTap service (Remote SkillTap App)receives the IM message “A” from User “A” 1903 2201 and evaluates themessage 2202. SkillTap decides 2203 to either publish 2206 the message2204 or not 2205. SkillTap retrieves the list of approved subscribersassigned to a channel which list includes the network address for thesubscribers. Skilltap will publish IM message “A” to the addresses onthe list. In one embodiment 2204, SkillTap publishes to a subscribergroup or elects to create a Chat Room such that the User ‘A’conversation can be joined by more than one Subscriber. Some IM messagesto SkillTap 2205 may not be published but used by IM to converse withUser “A”. These IM conversations support such things as SkillTap Promptsfor such things as how-to, SkillTap FAQ access, Help support, SkillTapWeb masters, customizing of local SkillTap applications and plug-inrequests. When IM message “A” is published to subscribers 2206, User “A”closes his IM session and waits for responders to initiate SkillTap IMsessions.

Subscriber “B” is one of the subscribers to the SkillTap channel User“A” is using. Subscriber “B” has setup his local SkillTap application(as described for User “A” 1901) to Filter incoming messages, Throttlethe incoming message activity and setup preferences for incomingcommunication. As part of the setup Subscriber “B” can elect to bewarned of incoming messages by enabling 2208 an alert mechanism. In oneembodiment, Alert options 2209 include whether the alert is an audiblesignal, a visual signal or a displayed icon.

When the Standard IM message “A” is published to Subscriber “B”, theLocal SkillTap application 1905 alerts 2210 him of the incoming message.The Alert in one embodiment is includes electing to display informationabout User “A”, a Topic, or the full text message. A second alert in theembodiment (not shown) allows the user to elect whether or not todisplay other media such as a Browser URL site.

In FIG. 23, if the subscriber elects to display options (from the alerticon) 1906 2301, a GUI allow him to optionally select 2302 beingprompted for display of the IM text, IM attachments (i.e., Text Files,Images, Audio, Video, Text <-> Voice . . . He can elect to display theIM messages, Display User “A” information (Name, title, job), or displayof the IM text, IM attachments (i.e., Text Files, Images, Audio, Video,Text <-> Voice . . . Using the options, the Subscriber displays 2303 theincoming IM message “A” 1908 2304 in a Special SkillTap IM GUI window.

If Subscriber “B” wishes to respond 1909 (join a conversation with User“A”) FIG. 24, he types a response text and optionally attaches othermedia into the special GUI. The special GUI in a preferred embodimentappends the original message to the text and identifying informationabout the Subscriber (Name, Phone, Title . . . ) 2401. In oneembodiment, the Subscriber elects 2402 to add a group distribution listto copy messages 2404 to other IM users for this conversation. Inanother embodiment, the Subscriber invokes a temporary Chat Roomfunction for the conversation by way of his local SkillTap application.The subscriber's response is transmitted to User “A” 1910 2405.

In FIG. 25 1911, the response IM message “B” from Subscriber “B”SkillTap IM message “B” is operated on 2501 by Content Filters,Throttling techniques, User preferences and message priority. Thepreferences 2502 include customizing the special incoming alert messageGUI and display options. Based on the options, a local SkillTapapplication presents an alert of an incoming SkillTap response IM 2503.If the User “A” elects to display the response skilltap IM message “B”and join the conversation with Subscriber “B” 1913, the one to onespecial IM conversation is begun 1912. During the conversation, theoriginal IM is appended. If User “A” wishes to start a new session, heissues a standard IM to the SkillTap Bot and a new conversation windowwill be opened. For that matter, a separate conversation window isopened by an initial response from each subscriber. In anotherembodiment, a common window is opened for a session using Chat Roomtechnology allowing the Initiator (User “A” to selectively allow morethan one Subscriber to join the conversation in a common GUI window.

In one embodiment, an active agent responds to the publication of User“A” initial message providing responses by querying a FAQ database. User“A” may or may not be informed that the responder is a robot Bot.

Referring to FIG. 26 at 1912, after User “A” has finished hisconversation with. Subscriber “B”, he exits the special SkillTap GUI Imwindow 2601. SkillTap provides the option for User “A” to elect 2602 toevaluate Subscriber “B” help and to elect 2603 to create a FAQ.

In rating the Subscriber, the SkillTap application prompts User “A” forevaluation categories and ratings 2604. SkillTap in a preferredembodiment, aggregates ratings for the subscriber (may be a simpleaveraging of scores accumulated from all requests to subscriber “B”)into a single rating. This score is optionally presented with anyresponse from Subscriber “B”. It can also be used by filters toprioritize responses from subscribers. In one embodiment, evaluations ofsubscribers is also related to topic such that the same subscriber mayhave a value rating of 5 for computers and 3 for programs. The topicsare pre-assigned by SkillTap.

If the user elects 2603 to create a FAQ, SkillTap provides an editableGUI containing the messages from the conversations from all subscribersresponding to the request or in another embodiment 2606, the GUI onlydisplays the Subscriber “B” information. The GUI can optionally displayrelated FAQ information as a result of a user query and can prompt User“A” to step him through the FAQ creation steps. When the user issatisfied with his new FAQ entry, SkillTap saves the results 2607 in theFAQ database. In one embodiment 2608 SkillTap associates User “A” withthe FAQ entry such that when the FAQ is queried in the future, the userscan see who the expert was that created the entry and how to contact him(network ID/Address, Phone etc). When the user is done, he closes hisspecial SkillTap conversation GUI window 2609.

While the preferred embodiment of the invention has been illustrated anddescribed herein, it is to be understood that the invention is notlimited to the precise construction herein disclosed, and the right isreserved to all changes and modifications coming within the scope of theinvention as defined in the appended claims.

1. A method for creating and saving information at the conclusion of anelectronic conversation session, said method comprising the steps of:initiating an electronic conversation between a first user and a seconduser wherein said electronic conversation session is uniquelyidentified; exchanging one or more electronic conversation messagesbetween the first user and the second user during said uniquelyidentified electronic conversation session; completing said electronicconversation; and recording information about said uniquely identifiedelectronic conversation session.
 2. The method according to claim 1,comprising the further step of creating information about saidconversation for said recording information step.
 3. The methodaccording to claim 2, wherein information created in the creatinginformation step comprises any one of: information for a FAQ entry,information for billing, information about a customer, information aboutthe value of the uniquely identified electronic conversation session,information about the value of the second user; information about thevalue of the electronic conversation, or information to be presented insubsequent electronic conversation sessions.
 4. The method according toclaim 1, wherein the recording information step records the informationin a cumulative storage.
 5. The method according to claim 1, wherein theinitiating step comprising the further steps of: receiving at a pub/subservice, a first electronic message from said first user, the messagedirected to a channel of the pub/sub service; said pub/sub servicepublishing the first electronic message to a plurality of anonymoususers subscribing to the pub/sub channel, the plurality of userscomprising said second user; receiving a response to the firstelectronic message from said second user; and responsive to receivingthe response, creating said uniquely identified electronic conversationsession.
 6. The method according to claim 3, wherein the informationabout the value of the electronic conversation comprises a value ratingindicating the value of the exchange of the one or more electronicconversation messages of the uniquely identified electronic conversationsession.
 7. The method according to claim 6 wherein said value rating isan aggregate of value rating accumulated from value ratings directed tosaid first subscriber.
 8. The method according to claim 6 comprising thefurther step of presenting said accumulated value rating with responsesfrom said first subscriber.
 9. The method according to claim 4,comprising the further steps of: retrieving recorded information fromsaid cumulative storage; and using said retrieved recorded informationto select said second user as a candidate for said electronicconversation with said first user.
 10. The method according to claim 9,wherein the initiating step comprising the further steps of: said firstuser publishing via channel of a pub/sub service, a first electronicmessage to a plurality of users comprising said second user, wherein theplurality of users subscribe to the pub/sub channel; receiving aresponse to the first electronic message from said second user; andresponsive to receiving the response, creating said uniquely identifiedelectronic conversation session.
 11. A computer program product forcreating and saving information at the conclusion of an electronicconversation session, the program product comprising: a storage mediumreadable by a processing circuit and storing instructions for executionby the processing circuit for performing a method comprising the stepsof: initiating an electronic conversation between a first user and asecond user wherein said electronic conversation session is uniquelyidentified; exchanging one or more electronic conversation messagesbetween the first user and the second user during said uniquelyidentified electronic conversation session; completing said electronicconversation; and recording information about said uniquely identifiedelectronic conversation session.
 12. The computer program productaccording to claim 11, wherein the initiating step comprising thefurther steps of: receiving at a pub/sub service, a first electronicmessage from said first user, the message directed to a channel of thepub/sub service; said pub/sub service publishing the first electronicmessage to a plurality of anonymous users subscribing to the pub/subchannel, the plurality of users comprising said second user; receiving aresponse to the first electronic message from said second user; andresponsive to receiving the response, creating said uniquely identifiedelectronic conversation session.
 13. The computer program productaccording to claim 12, wherein information created in the creatinginformation step comprises any one of: information for a FAQ entry,information for billing, information about a customer, information aboutthe value of the uniquely identified electronic conversation session,information about the value of the second user; information about thevalue of the electronic conversation, or information to be presented insubsequent electronic conversation sessions.
 14. The computer programproduct according to claim 16, wherein the recording information steprecords the information in a cumulative storage, comprising the furthersteps of: retrieving recorded information from said cumulative storage;and using said retrieved recorded information to select said second useras a candidate for said electronic conversation with said first user;wherein the initiating step comprising the further steps of: said firstuser publishing via channel of a pub/sub service, a first electronicmessage to a plurality of users comprising said second user, wherein theplurality of users subscribe to the pub/sub channel; receiving aresponse to the first electronic message from said second user; andresponsive to receiving the response, creating said uniquely identifiedelectronic conversation session.
 15. The computer program productaccording to claim 13, wherein the information about the value of theelectronic conversation comprises a value rating indicating the value ofthe exchange of the one or more electronic conversation messages of theuniquely identified electronic conversation session.
 16. A system forcreating and saving information at the conclusion of an electronicconversation session, the system comprising: a network; a client systemin communication with the network wherein the system includesinstructions to execute a method comprising the steps of: initiating anelectronic conversation between a first user and a second user whereinsaid electronic conversation session is uniquely identified; exchangingone or more electronic conversation messages between the first user andthe second user during said uniquely identified electronic conversationsession; completing said electronic conversation; and recordinginformation about said uniquely identified electronic conversationsession.
 17. The system according to claim 16, further comprising apub/sub service in communication with the network, wherein theinitiating step comprising the further steps of: receiving at a pub/subservice, a first electronic message from said first user, the messagedirected to a channel of the pub/sub service; said pub/sub servicepublishing the first electronic message to a plurality of anonymoususers subscribing to the pub/sub channel, the plurality of userscomprising said second user; receiving a response to the firstelectronic message from said second user; and responsive to receivingthe response, creating said uniquely identified electronic conversationsession.
 18. The system according to claim 17, wherein informationcreated in the creating information step comprises any one of:information for a FAQ entry, information for billing, information abouta customer, information about the value of the uniquely identifiedelectronic conversation session, information about the value of thesecond user; information about the value of the electronic conversation,or information to be presented in subsequent electronic conversationsessions.
 19. The system according to claim 18, wherein the informationabout the value of the electronic conversation comprises a value ratingindicating the value of the exchange of the one or more electronicconversation messages of the uniquely identified electronic conversationsession.
 20. The system according to claim 16, wherein the recordinginformation step records the information in a cumulative storage,comprising the further steps of: retrieving recorded information fromsaid cumulative storage; and using said retrieved recorded informationto select said second user as a candidate for said electronicconversation with said first user; wherein the initiating stepcomprising the further steps of: said first user publishing via channelof a pub/sub service, a first electronic message to a plurality of userscomprising said second user, wherein the plurality of users subscribe tothe pub/sub channel; receiving a response to the first electronicmessage from said second user; and responsive to receiving the response,creating said uniquely identified electronic conversation session.